<?php
/******************
/ GLOBÁLIS AKCIÓK /
******************/

if($_GET['act']=="logout"){ //kilépés
	session_destroy();
	redirect('../index.php?code="logout"');
}














/*******************
/AUTOMATIKUS AKCIÓK/
*******************/


//napi bevétel megadása
$logindate = $userdata->getLoginDate();
$dist = get_time_distance($logindate);
$midnights = $dist['week']*7+$dist['day']; //az eltelt napok száma
if((time()-$dist['hour']*3600-$dist['minute']*60-$dist['second'])<strtotime('midnight')){ //ha azóta történt egy éjfél-átlépés
	$midnights+=1;
}

$plus = $midnights*$mainconf->get('income'); // ennyivel nő a pénz


//kaja-pénz levonása
$minus; //napi fogyasztás
$a_list = new DataListManager('animals', 'userid='.$_SESSION['userid']);
while($curr = $a_list->next_row()){
	$minus+=$mainconf->get('foodprice'.$curr->get('foodtype')); //pl. foodprice2=8
}
$dist = time()-$logindate; //utolsó számítás óta eltelt ídő
$rate = $dist / 86400;     //ez az idő hány napnak felel meg
$minus = $rate*$minus; // a tényleges levonandó összeg

//plus bevétel - minus kaja egyben
$userdata->increaseMoney($plus-$minus); //megcsináljuk egyben a tranzakciót


$a_list->restart();

/* ÁLLATI AKCIÓK :) */
while($curr = $a_list->next_row()){

	$foodendtime = $curr->get('foodendtime');

	//az állatok testsúlyának növelése ha jó volt kaja
	$currentweight = $curr->get("weight");

	if($foodendtime>$logindate and $currentweight<100){ // ha( volt olyan időszak, amikor volt kajája ÉS nincs maxon a testsúlya );
		if($foodendtime>time()){
			$foodtime = time() - $logindate; // a múltkori belépés óta folyamatosan van étel
		}
		else{
			$foodtime = $foodendtime - $logindate; // csak a kaja lejártáig volt étel
		}
		$plusweight = $foodtime / $mainconf->get("foodweight".$curr->get("foodtype"));
		
		if($plusweight+$currentweight > 100){ // több lenne mint 100
			$curr->set("weight", "100");
		}
		else{
			$curr->set("weight", $plusweight+$currentweight);
		}
		
	}
	
	//foodhappy
	// az a lényeg, hogy az elmúlt <foodhappy> időben a kaja átlagos minősége lesz a foodhappy
	// szal ha x ideje eszik egy kaját akkor max. x/<foodhappytime> résznyit változhat a foodhappy a foodhappy<foodlevel> irányba
	$curr_foodhappy = $curr->get("foodhappy");
	$max_foodhappy = $mainconf->get("foodhappy".$curr->get("foodtype"));
	if($foodendtime>$logindate and $curr_foodhappy!=$max_foodhappy){
		if($foodendtime>time()){
			$foodtime = time() - $logindate; // a múltkori belépés óta folyamatosan van étel
		}
		else{
			$foodtime = $foodendtime - $logindate; // csak a kaja lejártáig volt étel
		}
		
		$foodhappyplus = $foodtime / $mainconf->get("foodhappytime") * $max_foodhappy; // akkora része a max_foodhappynek.
		
		if($curr_foodhappy+$foodhappyplus>$max_foodhappy){
			$curr->set("foodhappy", $max_foodhappy);
		}
		else{
			$curr->set("foodhappy", $curr_foodhappy+$foodhappyplus);
		}
		
	}


	//állatok testsúlyának csökkentése ha nincs kaja

	
	if($foodendtime<time()){
		$nonfoodtime = time() - $foodendtime;
		$minusweight = $nonfoodtime / $mainconf->get('nonfoodspeed'); // pl. egy nap alatt esik 12-vel a súlya 86400/12=7200 mp-enként csökken egyel
		$curr->set("weight", $curr->get('weight')-$minusweight); // csökkentjük a weight-t $minusweight-tel

		$curr->set('foodendtime', time()); //most-ra állítjuk a kajálás végét, hogy ugyanazért az időért ne vonjunk le 2x
		
		
	}
	if($curr->get("weight")<=$mainconf->get('die_weightlimit')){
		animal_die($curr);
		continue;
	}

	
	// ha egy állat nagyon szomorú akkor meghal :'(
	
	if(calcHappy($curr)<$mainconf->get('die_happylimit')){
		animal_die($curr);
		continue;
	}
	
}

$a_list->restart();





//kínálat létrehozása (új állatok)
	$dist = get_time_distance($logindate);
	if($logindate<strtotime('midnight')){ //ha az utolsó belépés óta történt egy éjfél-átlépés
		$list = new DataListManager('buyanimals', 'userid='.$_SESSION['userid']);
		$list->truncate(); // kidobjuk a tegnapi állatokat
		
		
		//berakunk <newanimals> új megvásárlolható állatot
		$a_types = explode(",", $mainconf->get('animaltypes'));
		$typelen = count($a_types);
		
		
		$i=0;
		while($i<$mainconf->get('newanimals')){ 
			$type = $a_types[rand(0, $typelen-1)];
			$names = explode(",", $lang->get($type."nev"));
			$name = $names[rand(0, count($names)-1)];
			$image = rand(1, $mainconf->get('animalimagenum'));
			$base = rand($mainconf->get('minbasehappy'), $mainconf->get('maxbasehappy'));
			$price = rand($mainconf->get('minprice'), $mainconf->get('maxprice'));
			$ins = array(
				"userid" => $_SESSION['userid'],
				"type" => $type,
				"name" => $name,
				"image" => $image,
				"basehappy" => $base,
				"price" => $price
			);
			DataRowManager::create('buyanimals', $ins);
			$i++;
		}
	}

	
//kínálat létrehozása (vásárlók)
	if($logindate<strtotime('midnight')){ //ha az utolsó belépés óta történt egy éjfél-átlépés
		$list = new DataListManager('customers', 'userid='.$_SESSION['userid']);
		$list->truncate(); // kidobjuk a tegnapi állatokat
		
		
		//berakunk <newanimals> új megvásárlolható állatot
		$a_types = explode(",", $mainconf->get('animaltypes'));
		$typelen = count($a_types);
		
		
		$i=0;
		$multiplier = round(mt_rand($mainconf->get('minnewcustomers')*100, $mainconf->get('minnewcustomers')*100)/100);
		while($i<(sqrt($a_list->length+2)-sqrt(2))*$multiplier){ // a vásárlók számának meghatározása
			
			$names = explode(",", $lang->get("vasarlonev"));
			$name = $names[rand(0, count($names)-1)];
			$image = rand(1, $mainconf->get('animalimagenum'));
			$base = rand($mainconf->get('minbasehappy'), $mainconf->get('maxbasehappy'));
			$animal = $a_list->manager(rand(0, $a_list->length-1)); //egy véletlenszerűen választott állat
			$price = rand($mainconf->get('minhappyprice')*100, $mainconf->get('maxhappyprice')*100)/100*calcHappy($animal); // az állat ára
			$ins = array(
				"userid" => $_SESSION['userid'],
				"name" => $name,
				"animal" => $animal->get('id'),
				"money" => $price
			);
			DataRowManager::create('customers', $ins);
			$i++;
		}
	}

//vásárló törlése ha az állat már nem létezik
	$vasarlolista = new DataListManager('customers', 'userid='.$_SESSION['userid']);
	while($curr = $vasarlolista->next_row()){
		$animal = new DataRowManager('animals', $curr->get('animal'));
		if(!$animal->own()){
			$curr->destroy();
		}
	}
	
	
	



?>
